package com.aysafety.eventmodel.dao;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface GeoSoundDao {
    void saveCal(Map<String, Object> param);

    /** 
    * @Description: 查询地音实时数据
    * @Param: [] 
    * @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>> 
    * @Author: ChengQi 
    * @Date: 2019/2/18
     * @param parram
    */ 
    List<Map<String, Object>> queryRealTimeByGeoSound(Map<String, Object> parram);

    /** 
    * @Description:每日能量偏差高值总数Ds、每日能量偏差高值总数Ds
    * @Param: [parram] 
    * @return: long 
    * @Author: ChengQi 
    * @Date: 2019/2/19 
    */ 
    long countHighDeviation(Map<String, Object> parram);

    /** 
    * @Description:  查询地音实时数据,根据能量大小排序
    * @Param: [parram] 
    * @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>> 
    * @Author: ChengQi 
    * @Date: 2019/2/19 
    */ 
    List<Double> queryRealTimeByEmergoaDesc(Map<String, Object> parram);

    /**
    * @Description: 查询脉冲相关特征参
    * @Param: [parram]
    * @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
    * @Author: ChengQi
    * @Date: 2019/2/19
    */
    List<Map<String, Object>> queryCalPulse(Map<String, Object> parram);

    //boolean saveWarning(Map<String, Object> resultMap);

    /**
     * 查询地音能量
     * @return
     */
    List<Map<String, Object>> queryRealGeosound(Map<String, Object> params);

    /**
     * 查询地音学习参数
     * @param params
     * @return
     */
    List<Map<String, Object>> queryGeosoundWarningStudy(Map<String, Object> params);

    /**
     * 查询地音能量均值
     * @param params
     * @return
     */
    List<Double> queryGeosoundAvlEmergoa(Map<String, Object> params);

    /**
     * 查询地音能量脉冲因子
     * @param params
     * @return
     */
    List<Double> queryGeosoundPulseFactor(Map<String, Object> params);


    /**
     * 保存计算好的地音综合预警
     * @param resultMap
     */
    void saveWarning(Map<String, Object> resultMap);


    /**
     * 查询在当前时间之前最近的一条数据
     * @param params
     * @return
     */
    Map<String, Object> queryGeosoundOnTime(Map<String, Object> params);


    /**
     * 计算当前时间前十分钟内的脉冲、累计能量和平均能量
     * @param params
     * @return
     */
    List<Map<String, Object>> queryGeosoundBeforeTenMinute(Map<String, Object> params);

    /**
     * 将脉冲、累计能量和平均能量保存到数据库中
     * @param params
     */
    void savePulseAndEnergy(Map<String, Object> params);


    /**
     * 查询脉冲因子
     * @param params
     * @return
     */
    List<Map<String, Object>> queryPulseFactor(Map<String, Object> params);

    /**
     * 查询能量均值
     * @param params
     * @return
     */
    List<Map<String, Object>> queryAvgEmergoa(Map<String, Object> params);


    /**
     * 查询预警程度
     * @param params
     * @return
     */
    List<Double> queryGeosoundWarning(Map<String, Object> params);

}
